关于python 3.x:Python3:long int太大而无法转换为float |
您所在的位置:网站首页 › conversion from int to float › 关于python 3.x:Python3:long int太大而无法转换为float |
我一直在这里检查一些与我遇到的相同问题有关的主题,但它们似乎无济于事。 我的问题是,当我尝试执行以下代码时,出现标题中的错误。我该如何解决? 1234567 d=2 while(n != 1): n = 2 d = (math.sqrt(2 + d)) n= (n/d) f = (f * (n)) print (f) 相关讨论 OverflowError的可能重复项:long int太大,无法转换为python中的float 如果执行该代码,则会得到" NameError:名称n未定义"。您实际上在执行什么代码? 哎呀。我错过了d = 2以上的n = 2的值。这是因为math.sqrt(由于使用C sqrt函数)适用于大小不受限制的浮点数。 Python无法将长整数转换为浮点数,因为它很大。 请参见有关对大数平方根求平方的方法的问题。 更好的是,您可以使用十进制模块,这是一个以10为底的无限大小数字类型。使用decimal.Decimal(number).sqrt()查找数字的平方根。 相关讨论 但是,如何精确地确定我的数字为2 d.p? @萨博我不明白。 d.p.代表?小数位?默认情况下,十进制具有38个小数位,因此sqrt可以精确到38个小数位。 ,小数点后一位。可以说math.srqt(2)给出了一个很长的数字(不合理),因此我得到了错误。那么如何使用十进制模块使其仅计算2个小数位,从而避免出现错误? 我的答案有使用十进制的正确代码;无需使用该替代方法。 我虽然有错误。 [] @Sab似乎我对十进制有误;请使用此问题中的方法。 (链接也在答案中)。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |